import axios from "axios";
import { GET_LOCAL_ITEM } from "@/utils/utils.js";
import $router from "../router/index";
// import { Message } from 'element-ui';
let baseURL = "http://newshopapi.0melon0.cn/api";
// let baseURL = "http://newshopapi.bluej.cn";
// 创建实例并配置基本项
let service = axios.create({
    baseURL,
    timeout: 10000
})


// 添加请求拦截器
service.interceptors.request.use(function (config) {
    let token = GET_LOCAL_ITEM("token")
    if (token) {
        config.headers['x-token'] = token
    }
    // 当存在token 时, 自动在请求头携带 token
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
service.interceptors.response.use(function (response) {
    // 对响应数据做点什么
    // 按需返回
    return {
        data: response.data,
        status: response.status
    }
}, function (error) {
    // 对响应错误做点什么
    // 根据约定好的状态码做相应处理, 比如 401 代表登录过期, 需要重新登录
    switch (error.response.status) {
        case 401:
            $router.push('/login')
            // 多个接口会导致多次弹出, 需要后端提供一个验证 token 的api避免
            // Message({
            //     type: 'warning',
            //     message: "登录已过期, 请重新登录",
            //     duration: 1000,
            // })
            break;
        default:
            break;
    }
    return Promise.reject(error);
});

export default service